In a packet-based, distributed processing system, processing blocks may perform various functions in parallel and/or in series. To communicate information from a source processing block to a destination processing block, the source processing block generates one or more packets, each of which includes a packet header and a data portion. The source processing block sends the packets to a router, which may then forward the packets to another router. Packet routing continues until the packets reach a destination router, which delivers the packets to the destination processing block.
In a typical distributed processing system, the router packet length is fixed (i.e., each router packet has the same length). This gives rise to a minimal latency, or delay, within the system. Packet transmission also can incur latency due to contention for limited resources (e.g., bandwidth and data buffer space). Because of the use of fixed-length packets, if a function executed by a source processing block produces an amount of information that exceeds the data capacity of a single packet, within a given time interval, multiple packets are generated and sent to communicate the information. Sending multiple packets implies more packet header overhead and greater use of the router bandwidth. If a function executed by a source processing block produces information at a relatively slow rate, then the processing block may be required to wait until it has enough information to form a packet. As a result, longer latency is introduced within the system.